﻿namespace Vaccine.API.Repositories
{
    /// <summary>
    /// 疫苗信息存储
    /// </summary>
    public interface IVaccineInfoRepository
    {
        /// <summary>
        /// 添加疫苗信息
        /// </summary>
        /// <param name="vaccineInfo"></param>
        /// <returns></returns>
        Task<VaccineInfo> AddAsync(VaccineInfo vaccineInfo);

        /// <summary>
        /// 更新疫苗信息
        /// </summary>
        /// <param name="vaccineInfo"></param>
        /// <returns></returns>
        Task UpdateAsync(VaccineInfo vaccineInfo);

        /// <summary>
        /// 按Id获取疫苗信息
        /// </summary>
        /// <param name="vaccineId">疫苗信息Id</param>
        /// <returns></returns>
        Task<VaccineInfo?> GetByIdAsync(Guid vaccineId);

        /// <summary>
        /// 获取所有的疫苗信息
        /// </summary>
        /// <returns></returns>
        Task<IEnumerable<VaccineInfo>> GetAll();

        /// <summary>
        /// 删除疫苗信息
        /// </summary>
        /// <param name="vaccineId">疫苗信息Id</param>
        /// <returns></returns>
        Task DeleteAsync(Guid vaccineId);
    }
}
